Learning to Learn Programs from Examples: Going Beyond Program Structure
نویسندگان
چکیده
Programming-by-example technologies let end users construct and run new programs by providing examples of the intended program behavior. But, the few provided examples seldom uniquely determine the intended program. Previous approaches to picking a program used a bias toward shorter or more naturally structured programs. Our work here gives a machine learning approach for learning to learn programs that departs from previous work by relying upon features that are independent of the program structure, instead relying upon a learned bias over program behaviors, and more generally over program execution traces. Our approach leverages abundant unlabeled data for semisupervised learning, and incorporates simple kinds of world knowledge for common-sense reasoning during program induction. These techniques are evaluated in two programming-by-example domains, improving the accuracy of program learners.
منابع مشابه
Towards more human-like concept learning in machines: Compositionality, causality, and learning-to-learn
People can learn a new concept almost perfectly from just a single example, yet machine learning algorithms typically require hundreds or thousands of examples to perform similarly. People can also use their learned concepts in richer ways than conventional machine learning systems – for action, imagination, and explanation – suggesting that concepts are far more than a set of features, exempla...
متن کاملPredicting a Correct Program in Programming By Example
We study the problem of efficiently predicting a correct program from a large set of programs induced from few input-output examples in Programming-by-Example (PBE) systems. This is an important problem for making PBE systems usable so that users do not need to provide too many examples to learn the desired program. We first characterize the three main types of expressions used for expression s...
متن کاملInducing Logic Programs With Genetic Algorithms: The Genetic Logic Programming System
Inductive Logic Programming (ILP) integrates the techniques from traditional machine learning and logic programming to construct logic programs from training examples. Most existing systems employ greedy search strategies which may trap the systems in a local maxima. This paper describes a system, called the Genetic Logic Programming System (GLPS), that uses Genetic Algorithms (GA) to search fo...
متن کاملScaling Up Inductive Learning with MassiveParallelismFOSTER
Machine learning programs need to scale up to very large data sets for several reasons, including increasing accuracy and discovering infrequent special cases. Current inductive learners perform well with hundreds or thousands of training examples, but in some cases, up to a million or more examples may be necessary to learn important special cases with conndence. These tasks are infeasible for...
متن کاملWhy Programming-By-Demonstration Systems Fail: Lessons Learned for Usable AI
enable ordinary end users to create programs without needing to learn the arcane details of programming languages, but simply by demonstrating what their program should do. If PBD were successful, the vast population of nonprogrammer computer users would be able to take control of their computing experience and create programs to automate routine tasks, develop applications for their specific n...
متن کامل